package object;

/**
 * 测试重写Object的toString方法与equals方法
 */

public class Demo {
    public static void main(String[] args) {
        Point p = new Point(1,2);
        /*
            String toString()
         */
        String str = p.toString();
        System.out.println(str);
        //向控制台输出p对象
        /*
            System.out.println(Object o)
            向控制台输出一个对象时，该方法会输出该对象toString方法返回的字符串
         */
        System.out.println(p);
        /*
            在进行字符串连接时，会将非字符串的对象内容转换为字符串，
         */
        String line = "对象内容："+p;
        System.out.println(line);

        /*
            Object定义的另一个常被子类重写的方法：equals
            该方法的作用时判断两个同类型的实列之间的内容是否相同。
         */
        Point p2 = new Point(1,2);
        /*
            ==为值比较，比较两个变量的值是否相同
            对于引用类型变量而言，保存的值是地址，因此==可以理解为比较两个对象的地址是否相同，
            这就意味着比较的是它们是否为同一对象
         */
        System.out.println(p == p2);//false
        /*
        equals方法并不关心两个对象是否为同一个对象，而是应当关心两个对象的内容是否相同。
        Object定义
         */
        System.out.println(p.equals(p2));//true
        /*
        老师地址：https://gitee.com/xiloer/jsd2109-se.git

         */
    }
}
